/**
 * 要求选一个山峰型。
 * 求出最长上升子序列与最长下降子序列
 * 枚举每一个位置即可
 */
#include <bits/stdc++.h>
using namespace std;

int getUnsigned(){
	char ch = getchar();
	while( ch < '0' || ch > '9' ) ch = getchar();

	int ret = (int)(ch-'0');
	while( '0' <= ( ch = getchar() ) && ch <= '9' ) ret = ret * 10 + (int)(ch-'0');
	return ret;
}

int N;
int A[110];
int D[110],U[110];

int main(){
    //freopen("1.txt","r",stdin);
    N = getUnsigned();
    for(int i=1;i<=N;++i)A[i]=getUnsigned();

    //Di是以i结尾的最长上升子序列
    D[1] = 1;
    for(int i=2;i<=N;++i){
        for(int j=1;j<i;++j){
            if(A[j]<A[i]&&D[i]<D[j]){
                D[i] = D[j];
            }
        }
        D[i] += 1;
    }

    //Ui是以i开头的最长下降子序列
    U[N] = 1;
    for(int i=N-1;i>=1;--i){
        for(int j=N;j>i;--j){
            if(A[j]<A[i]&&U[i]<U[j]){
                U[i] = U[j];
            }
        }
        U[i] += 1;
    }

    int t,k = 0;
    for(int i=1;i<=N;++i){
        if( k < (t=D[i]+U[i]-1) ){
            k = t;
        }
    }
    printf("%d\n",N-k);
    return 0;
}